package com.dev.op.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dev.op.entity.Problem;
import com.dev.op.entity.Submission;
import com.dev.op.entity.TestCase;

import java.util.List;

public interface RedisService {
    //向redis中存储题目信息
    Boolean saveProblem(Problem problem,long expireSecond);
    //向redis存储 分页 分size（固定为20）的题目id信息
    Boolean saveProblemsInPageSize(Page<Problem> pageResult,long expireSecond);
    //向redis拿 题目列表 （分页）
    Page<Problem> getProblemsInPage(int page, int size);
    //题目列表分页，使得最后一页全部失效
    Boolean deleteLastPageOfProblemCache();
    //删除所有题目列表分页缓存
    Boolean deleteAllPageOfProblemCache();
    //向redis中存储题目对应的测试用例
    Boolean saveTestCases(List<TestCase> testCases,long expireSecond);
    //向redis删除题目信息
    Boolean deleteProblem(String problemId);
    //向redis拿题目
    Problem getProblem(String problemId);
    //向redis拿测试用例
    List<TestCase> getTestCase(String problemId);
    //删除redis中给出问题的测试用例
    Boolean deleteTestCase(String problemId);
    //存提交信息
    Boolean saveSubmissionResult(Submission submission,long expireSecond);
    //取提交信息
    Submission getSubmission(String submissionId);
}
